from datetime import datetime, timezone


def date_to_timestamp(dt_str):
    """
    将"%Y-%m-%d %H:%M:%S"的utc时间字符串转为时间戳.

    Args:
        dt_str:  utc时间字符串

    Returns:
        时间戳(以s为单位)
    """
    dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
    return dt.replace(tzinfo=timezone.utc).timestamp()


def smooth_data(df, window=18):
    """
    对dataframe数据使用滑动窗口进行平滑(不改变原有数据)

    Args:
        df: 需要处理的dataframe数据
        window: 滑动窗口大小,默认18

    Returns:
        平滑后的dataframe数据
    """
    for col in df.columns:
        if col == "timestamp":
            continue
        df[col] = df[col].rolling(window=window).mean().bfill().ffill().values
    return df

